Skip to content

Update Code to 1.113.0#7716

Merged
code-asher merged 3 commits intocoder:mainfrom
benz0li:code-1.113.0
Mar 26, 2026
Merged

Update Code to 1.113.0#7716
code-asher merged 3 commits intocoder:mainfrom
benz0li:code-1.113.0

Conversation

@benz0li
Copy link
Copy Markdown
Contributor

@benz0li benz0li commented Mar 25, 2026

No description provided.

@benz0li benz0li requested a review from a team as a code owner March 25, 2026 12:45
@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 25, 2026

Ping @code-asher

...
[12:54:44] [mangler] ERROR: Protected fields have been made PUBLIC. This hurts minification and is therefore not allowed. Review the WARN messages further above
...

https://github.com/coder/code-server/actions/runs/23541856157/job/68531271657?pr=7716#step:11:461

The target we have been using has started throwing all sorts of errors
during the build (even without any of our patches).  After checking the
VS Code repo I think these are the ones we should actually be using.
They are way faster, too.
Copy link
Copy Markdown
Member

@code-asher code-asher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I took a look at VS Code's GitHub workflows and it looks like they are using different build targets, so I tried those and it seems to be working.

Also these targets are way, way faster. 7.5-10 minutes instead of the hour+ it was before. Almost worried something must be wrong haha but I smoke tested it and everything seems to be working. Will probably make this one an RC first just in case.

@code-asher code-asher merged commit 8d9a44a into coder:main Mar 26, 2026
12 checks passed
@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 26, 2026

Will probably make this one an RC first just in case.

Good idea.

@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 26, 2026

@code-asher Please note the size increase, e.g.

  • code-server-4.112.0-linux-amd64.tar.gz: 122 MB
    vs
  • code-server-4.113.0-rc.1-linux-amd64.tar.gz: 234 MB

@code-asher
Copy link
Copy Markdown
Member

code-asher commented Mar 26, 2026

Aha yup I noticed that too and investigated. They are including a few new dependencies, @github/copilot and some others that total to 132 MB (uncompressed).

The rest appears to be new files and source maps, but most of it seems to be those Copilot dependencies.

@code-asher
Copy link
Copy Markdown
Member

I think actually we can strip some of that out, looking at how VS Code is building things. I will mess around with that tomorrow.

@code-asher
Copy link
Copy Markdown
Member

Finally got it building with VS Code's packaging which does all the post-processing of modules. It is still bigger, 152 MB now, but I think that is just how big it is now.

@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 31, 2026

Finally got it building with VS Code's packaging which does all the post-processing of modules. It is still bigger, 152 MB now, but I think that is just how big it is now.

🤔

@code-asher Inspection of the tarballs (code-server-4.112.0-linux-amd64.tar.gz vs code-server-4.113.0-rc.2-linux-amd64.tar.gz):


v4.112.0: ls -al node_modules | wc -l: 141 (41 MB, uncompressed)

v4.112.0_node_modules.txt

v4.113.0-rc.2: ls -al node_modules | wc -l: 400 (114 MB, uncompressed)

v4.113.0-rc.2_node_modules.txt


v4.112.0: ls -al lib/vscode/node_modules | wc -l: 97 (111 MB, uncompressed)

v4.113.0-rc.2: ls -al lib/vscode/node_modules | wc -l: 95 (78 MB, uncompressed)

v4.112.0_lib_vscode_node_modules: ls lib/vscode/node_modules
v4.113.0-rc.2_lib_vscode_node_modules: ls lib/vscode/node_modules

diff -u v4.112.0_lib_vscode_node_modules v4.113.0-rc.2_lib_vscode_node_modules

--- v4.112.0_lib_vscode_node_modules
+++ v4.113.0-rc.2_lib_vscode_node_modules
@@ -18,6 +18,7 @@
 file-uri-to-path
 fs-constants
 fs-extra
+@github
 github-from-package
 graceful-fs
 http-proxy-agent
@@ -44,7 +45,6 @@
 ms
 napi-build-utils
 node-abi
-node-addon-api
 node-pty
 once
 opentype.js
@@ -52,7 +52,6 @@
 pend
 picomatch
 @pondwader
-prebuild-install
 proxy-from-env
 pump
 rc
@@ -73,7 +72,6 @@
 tas-client
 tiny-inflate
 @tootallnate
-tslib
 tunnel-agent
 @types
 undici
@@ -81,10 +79,12 @@
 util-deprecate
 uuid
 @vscode
+vscode-jsonrpc
 vscode-oniguruma
 vscode-regexpp
 vscode-textmate
 wrappy
+ws
 @xterm
 yallist
 yauzl

v4.112.0: ls -al lib/vscode/node_modules/.bin:

[REDACTED] katex -> ../katex/cli.js
[REDACTED] mkdirp -> ../mkdirp/bin/cmd.js
[REDACTED] ot -> ../opentype.js/bin/ot
[REDACTED] prebuild-install -> ../prebuild-install/bin.js
[REDACTED] rc -> ../rc/cli.js
[REDACTED] semver -> ../semver/bin/semver.js
[REDACTED] srt -> ../@anthropic-ai/sandbox-runtime/dist/cli.js
[REDACTED] uuid -> ../uuid/dist/bin/uuid
[REDACTED] vscode-languagedetection -> ../@vscode/vscode-languagedetection/cli/index.js

v4.113.0-rc.2: ls -al lib/vscode/node_modules/.bin: ls: cannot access 'lib/vscode/node_modules/.bin': No such file or directory


v4.112.0: du -sh lib/vscode/out/vs/workbench/*:

22M 	lib/vscode/out/vs/workbench/api
4.5M	lib/vscode/out/vs/workbench/contrib
3.9M	lib/vscode/out/vs/workbench/services

+ du -sh lib/vscode/out/vs/code/browser/workbench/*:

156K    lib/vscode/out/vs/code/browser/workbench/callback.html
972K    lib/vscode/out/vs/code/browser/workbench/workbench.css
2.0M    lib/vscode/out/vs/code/browser/workbench/workbench.css.map
4.0K    lib/vscode/out/vs/code/browser/workbench/workbench.html
14M     lib/vscode/out/vs/code/browser/workbench/workbench.js
63M     lib/vscode/out/vs/code/browser/workbench/workbench.js.map

v4.113.0-rc.2: du -sh lib/vscode/out/vs/workbench/*:

22M 	lib/vscode/out/vs/workbench/api
40K		lib/vscode/out/vs/workbench/browser
4.9M	lib/vscode/out/vs/workbench/contrib
4.0M	lib/vscode/out/vs/workbench/services
984K	lib/vscode/out/vs/workbench/workbench.web.main.internal.css
2.1M	lib/vscode/out/vs/workbench/workbench.web.main.internal.css.map
16M 	lib/vscode/out/vs/workbench/workbench.web.main.internal.js
63M 	lib/vscode/out/vs/workbench/workbench.web.main.internal.js.map

@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 31, 2026

code-server-4.113.0-rc.2-linux-amd64.tar.gz with Code 1.113.0 is deployed at https://coder.jupyter.b-data.ch.

Functionality [modified by patches] tested and found to work:

  • base-path
  • cli-window-open
  • local-storage
  • marketplace
  • proxy-url
  • service-worker
  • web view

Workspaces and Jupyter Notebooks also work fine:

  • ms-toolsai.jupyter@2025.9.1
  • ms-python.python@2026.4.0

@code-asher
Copy link
Copy Markdown
Member

Thank you for testing it!

I checked the git history and yeah looks like @github and ws were newly added in March, and vscode-jsonrpc is a dependency of @github/copilot-sdk, so that makes sense.

The removed modules line up with the .modulesignore file so that looks right too, except tslib, not sure why that one is gone. It seems to be a peer dependency of @microsoft/applicationinsights-core-js, so maybe it is not strictly required.

But hmm the root modules went from 41 to 114 MB? Ohh this is definitely a mistake, I switched to npm ci to match how VS Code does their build but this probably installs dev dependencies. OK time for a third RC hahah. Thanks for the catch!

@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 31, 2026

@code-asher Thank you so much for your effort and your time.

Highly appreciated!

@benz0li
Copy link
Copy Markdown
Contributor Author

benz0li commented Mar 31, 2026

code-server: The size difference of the tarball files between versions 4.112.0 and 4.113.0-rc.3 is now 18 MB.

(VS Code: The size difference of the tarball files between versions 1.112.0 and 1.113.0 is 11.1 MB)

This looks reasonable. I will smoke test v4.113.0-rc.3 early next morning (CEST).

@code-asher
Copy link
Copy Markdown
Member

code-asher commented Mar 31, 2026

I checked how it compared uncompressed with the official web build (on Codespaces):

157M    code-server-4.113.0-rc.3-linux-amd64/lib/vscode
149M    cfbea10c5ffb233ea9177d34726e6056e89913dc # after I removed the node binary

After poking around a bit, I suspect this difference is because we keep the source maps. Might be worth considering removing them, but I can look into that later.

Edit: apparently the official build does have a few source maps, if I remove all .map files from both I get:

76M     code-server-4.113.0-rc.3-linux-amd64/lib/vscode
145M    cfbea10c5ffb233ea9177d34726e6056e89913dc

Suspiciously way smaller without source maps...

Double edit: I get a much closer match if I download the official web build locally, maybe the Codespaces one is built differently:

87M    vscode-server-linux-x64-web/

Looks like most of that is because of the vsce-sign module which code-server is not able to include:

9.9M    vscode-server-linux-x64-web/node_modules/@vscode/vsce-sign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants